﻿IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'ReporteOrdenPedido')
	BEGIN
		DROP  Procedure  ReporteOrdenPedido
	END

GO

CREATE Procedure ReporteOrdenPedido

	(
	    @fechainicio datetime,
	    @fechafin datetime,
		@idArea int
	)


AS
begin

if(@idArea!=0)
SELECT     dbo.DetalleOrdenPedido.Descripcion as 'Desc.',
           dbo.DetalleOrdenPedido.Cantidad,  
           dbo.OrdenPedido.FechaOrden,
             case  
           when dbo.OrdenPedido.Estado=0 then 'En Espera'
           when dbo.OrdenPedido.Estado=1 then 'Atendido'
           end as 'Estado',  
           dbo.OrdenPedido.Descripcion AS 'Descripción',
           dbo.OrdenPedido.IdOrdenPedido,
           dbo.Area.Nombre As 'Area', 
           dbo.Ubigeo.Departamento +' - '+ dbo.Ubigeo.Provincia +' - '+ dbo.Ubigeo.Distrito as 'Ubigeo'


FROM       dbo.DetalleOrdenPedido INNER JOIN
           dbo.OrdenPedido ON dbo.DetalleOrdenPedido.IdOrdenPedido = dbo.OrdenPedido.IdOrdenPedido INNER JOIN
           dbo.Pedido ON dbo.OrdenPedido.IdPedido = dbo.Pedido.IdPedido INNER JOIN
           dbo.Area ON dbo.Pedido.IdArea = dbo.Area.IdArea INNER JOIN
           dbo.Sucursal ON dbo.Area.IdSucursal = dbo.Sucursal.IdSucursal INNER JOIN
           dbo.Ubigeo ON dbo.Sucursal.IdUbigeo = dbo.Ubigeo.IdUbigeo
           where dbo.Area.IdArea=@idArea and  dbo.OrdenPedido.FechaOrden between @fechainicio and @fechafin
           else
SELECT     dbo.DetalleOrdenPedido.Descripcion as 'Desc.',
           dbo.DetalleOrdenPedido.Cantidad,  
           dbo.OrdenPedido.FechaOrden,
             case  
           when dbo.OrdenPedido.Estado=0 then 'En Espera'
           when dbo.OrdenPedido.Estado=1 then 'Atendido'
           end as 'Estado',  
           dbo.OrdenPedido.Descripcion AS 'Descripción',
           dbo.OrdenPedido.IdOrdenPedido,
           dbo.Area.Nombre As 'Area', 
           dbo.Ubigeo.Departamento +' - '+ dbo.Ubigeo.Provincia +' - '+ dbo.Ubigeo.Distrito as 'Ubigeo'


FROM       dbo.DetalleOrdenPedido INNER JOIN
           dbo.OrdenPedido ON dbo.DetalleOrdenPedido.IdOrdenPedido = dbo.OrdenPedido.IdOrdenPedido INNER JOIN
           dbo.Pedido ON dbo.OrdenPedido.IdPedido = dbo.Pedido.IdPedido INNER JOIN
           dbo.Area ON dbo.Pedido.IdArea = dbo.Area.IdArea INNER JOIN
           dbo.Sucursal ON dbo.Area.IdSucursal = dbo.Sucursal.IdSucursal INNER JOIN
           dbo.Ubigeo ON dbo.Sucursal.IdUbigeo = dbo.Ubigeo.IdUbigeo
           where dbo.OrdenPedido.FechaOrden between @fechainicio and @fechafin           
           
end

GO


GRANT EXEC ON ReporteOrdenPedido TO PUBLIC

GO


